package com.ruoyi.parkingcar.mapper;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import com.ruoyi.parkingcar.domain.ParkOrder;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 订单信息管理Mapper接口
 * 
 * @author 饼干
 * @date 2025-02-09
 */
@Mapper
public interface ParkOrderMapper 
{
    /**
     * 查询订单信息管理
     * 
     * @param orderId 订单信息管理主键
     * @return 订单信息管理
     */
    public ParkOrder selectParkOrderByOrderId(Long orderId);

    /**
     * 查询订单信息管理列表
     * 
     * @param parkOrder 订单信息管理
     * @return 订单信息管理集合
     */
    public List<ParkOrder> selectParkOrderList(ParkOrder parkOrder);

    /**
     * 新增订单信息管理
     * 
     * @param parkOrder 订单信息管理
     * @return 结果
     */
    public int insertParkOrder(ParkOrder parkOrder);

    /**
     * 修改订单信息管理
     * 
     * @param parkOrder 订单信息管理
     * @return 结果
     */
    public int updateParkOrder(ParkOrder parkOrder);

    /**
     * 删除订单信息管理
     * 
     * @param orderId 订单信息管理主键
     * @return 结果
     */
    public int deleteParkOrderByOrderId(Long orderId);

    /**
     * 批量删除订单信息管理
     * 
     * @param orderIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteParkOrderByOrderIds(Long[] orderIds);

    public ParkOrder selectCarByNumber(String licensePlate);

    //根据车辆ID和时间新增订单
    public int insertOrder(ParkOrder parkOrder);

    /**
     * Vant
     */

    //查询
    List<ParkOrder> selectParkOrder(ParkOrder parkOrder);

    //查询
    List<ParkOrder> selectOrder(ParkOrder parkOrder);

    //删除
    int deleteByPrimaryKey(
            @Param("orderNo") String orderId
    );

    //阿里修改
    int updateOrder(ParkOrder parkOrder);

    //Vant修改
    void updateOrderById(ParkOrder parkOrder);

//    //添加出场时间
//    void addEndTime(ParkOrder parkOrder);

    void addCost(@Param("cost") BigDecimal cost,@Param("orderNo") String orderNo,@Param("endTime") Date endTime);

}
